package com.itheima.d1_polymorphism;
/*
    什么是多态？
        多态是在继承/实现情况下的一种现象，表现为：对象多态、行为多态。

    多态的前提
        1 有继承/实现关系；
        2 存在父类引用子类对象；
        3 存在方法重写

    多态的一个注意事项
        多态是对象、行为的多态，Java中的属性(成员变量)不谈多态

    需求 : 定义学生类 , 和老师类 , 继承人类 , 演示对象多态、行为多态。
 */
public class Test1 {
    public static void main(String[] args) {
        People student=new Student();
        System.out.println(student.age);

        People teacher=new Teacher();
        System.out.println(teacher.age);

        student.PeopleTeYou();
        teacher.PeopleTeYou();

        h(student);
        h(teacher);
        aaa(student);
        aaa(teacher);
    }

    public static void h(People people){
        people.run();
    }

    public static void aaa(People people){
        if(people instanceof Student){
            ((Student) people).study();
        }
        if(people instanceof Teacher){
            ((Teacher) people).teach();
        }
    }
}
